Security cameras are increasingly important for both enterprises and consumers. All levels of government are promoting installation of cameras to address fears of crime. Liability insurers may raise rates on customers who cannot document that their premises are controlled. But the market is bifurcated into extremely costly high end integrated services and low cost do-it-yourself system design projects for hobbyists. By high complexity image sequences the present invention includes high resolution digital photographs, lower resolution moving images in the form of a series of video frames, meta-data about the time, place, and conditions of the image, and derived data from quantitative metrics of the images and compressed low resolution extracts from images. Internet Protocol (IP) network digital cameras are known as an accepted solution for security and monitoring. Utilizing IP networks instead of dedicated video connections to a local server dramatically improves system flexibility and can reduce connectivity and management complexity.
Conventional IP network camera system design requires “logging in” to each camera. Typically, each camera implements a website for user access. After a user connects to a camera, he or she may then view data, configure the camera, control conventional camera pan, tilt, and zoom (PTZ) functions, or view a real time stream of image data. In common applications, people also want to record the video to allow an analysis of events either missed in real time or not observed with the necessary attention.
Conventional cameras can be configured to send an email including images when an event happens. Conventional cameras can be configured to broadcast or stream video. Conventional cameras can be configured to perform a file transfer protocol (FTP) transaction, in a non-limiting example, uploading at least one image. While this is closer to a desired end user functionality, conventional implementations require extensive network application and system engineering and only result in transfer of limited amounts of information. For example it is observed by the inventors that configuration of each network environment consists at least of opening ports, mapping addresses, managing a difficult maintenance and operations model to be assured that the system is working when needed, and addressing security concerns. For example, is the equipment on premises vulnerable to theft or damage, can end users properly configure the network and the specific camera device, what steps are needed to easily record and analyze the video.
To allow live access to cameras, a user should be able to configure firewalls if external access is to be allowed and to configure an IP address resolution service such as a dynamic DNS application. Because the solution depends on an occasional user to define and configure each security installation, deployed solutions have been known to exhibit very poor security such as unintended publicly viewable webcams.
It is known that configuring for recording video is even more complex than simply viewing it. The typical solution requires selecting and installing an additional system into the user's local network to record the video, configuring the cameras to transmit incoming data in a manner compatible with the recording system, and assuring all network configurations are correct to allow reliable communication between cameras and recording systems. This introduces additional hardware to be configured and maintained. It creates an additional exposure for assets to be stolen or damaged. Prior to beginning the installation, users must determine how large and complex a system they will ultimately require or some procurement will turn out to be inadequate and soon obsolete.
To utilize outbound FTP functionality, the user of conventional systems must configure a server to accept the FTP transactions and configure the camera to upload the data appropriately. Further, since the FTP transaction is typically not in real time, the size is limited by the amount of memory available for storage on the device. Alternately an email solution can be considered. Unfortunately, e-mail cannot typically provide true video recording. Limitations of email servers and email accounts constrain the email alert model to only a few images. Further, since email does not enable realtime streaming of data to the email server, the total size of the stored video is limited to the storage on the device.
Conventional video security systems do not enable proactive monitoring of their status. End users occasionally discover when an event occurs in their premises, that their system was not functioning correctly and that they do not have the desired critical information despite having made investments into both cameras and recording systems. Since video monitoring systems are typically not core to the business of most enterprises, but supportive, the resources allocated to maintain the system are frequently inadequate, insufficient, or lack the proper expertise to maintain the system effectively. This results in many video systems being effectively turned off after a period of time as the cost and complexity of maintaining the system overwhelms the day to day benefits. Only the largest governmental or private enterprises have continuous human monitoring of all cameras.
The challenge of maintaining operational systems has been addressed in other domains effectively by adopting a “service model” where minimal equipment is onsite and a centralized service provides functionality to a large pool of users. Video monitoring has historically been unable to use this model effectively due to the high bandwidth required to effectively record usable quality video. While this bandwidth can be addressed in local area networks, a service model with centralized recording requires video to be sent over a wide area network such as the Internet, and such connection may be costly and typically limited. For example many business have traditionally had “T1 ” connectivity, which is bidirectional at about 1 megabit per second. A single camera with high quality video in traditional implementations uses 2-3 megabits of bandwidth, making a conventional service based model impractical.
The benefits of a service based model would be significant. One key benefit is the ability to use shared resources across a larger number of customers. This amortizes the cost of equipment, monitoring and maintenance, allowing very high levels of service at manageable costs. In the area of equipment and management, it is known a single logical storage volume, potentially made up of a very large number of physical volumes, can be shared amongst a large number of users if there are sufficient safeguards for privacy. Using a single large logical storage volume allows for significant individual variance in usage patterns to be efficiently addressed. A single large logical storage volume also allows additional reliability and maintenance investments to be amortized over the entire user set, significantly increasing reliability and reducing costs.
Similarly it is known that a set of processing elements can be efficiently shared amongst a plurality of sporadic processing demands. The virtual machine model is one well known implementation that allows processing to be allocated and de-allocated to processing resources on demand. Several other processing models are known ways of distributing computational demands over a large number of processing elements. The models include pipelining, where a single processing element performs a small part of the overall function for multiple processing demands, and threading, where a single process is divided into multiple logical subprocesses.
These processing and storage models have been optimized in a computational architecture commonly called “cloud computing”. In cloud computing a very large number of machines and a very large amount of logical storage is made available in an on-demand basis to a large body of customers. Customers can increase and decrease the amount of computational resources allocated to them on a demand basis. Each computation resource is some version of a virtual machine, which can then be further partitioned into individual user computation needs as outlined above. Cloud computing also provides cloud storage, where a very large amount of storage is made available on a demand basis, allowing customers to allocate and de-allocate storage as needed. One example of cloud computing is Amazon's Elastic Computing Cloud (EC2). One example of cloud storage is Amazon's Simple Storage Service (S3).
The following processes are known in the art as methods for motion detection: processing a constant sequence of images (video), establishing a reference image of the scene with only background items, detecting when pixels are changed sufficiently in subsequent images to indicate areas in motion, counting the number of pixels in motion to determine if enough have changed to indicate an event of interest, and updating the background image for areas that have changed minimally. Significant improvements are known on this basic algorithm including object detection and object recognition. Thus it can be appreciated that what is needed is an apparatus which makes deployment, maintenance, and operation of IP network cameras much less complex. What is needed is equipment that is extremely easy to set up and maintain by using a cloud computing infrastructure and strategy.